package com.shujia.wyh.day13.ketang;

/*
        抽象类成员的特点：
            成员变量：既可以是变量，也可以是常量
            构造方法：有构造方法。问题是刚刚才说过，抽象类不能被实例化，这里的构造方法有什么用呢？
                用于子类访问父类的初始化。
            成员方法：既可以是抽象方法，也可以是具体的方法。
                具体的类继承抽象类，强制要实现抽象类中的所有抽象方法。
                抽象类继承抽象类，可以选择性地实现。


 */

abstract class Animal3{
    public int num = 10;
    public final int num2 = 20;

    Animal3(){

    }

    public void show(){
        System.out.println("这是抽象类Animal3中具体的方法");
    }

    //java: 抽象方法不能有主体
//    public abstract void fun(){
//        System.out.println("");
//    }
    public abstract void fun();
}

class Dog3 extends Animal3{

    @Override
    public void fun() {
        System.out.println("狗玩飞盘");
    }
}

abstract class Cat3 extends Animal3{

}


public class AbstractDemo3 {
    public static void main(String[] args) {

    }
}
